package com.Clause.Biais;

import java.util.HashSet;

import com.Clause.Clause;
import com.Clause.ClauseElement;
import com.Clause.OperateurBinaire;
import com.Clause.Variable;

public class RangeRestricted {

	public static boolean check = false;

	public static boolean accept(Clause clause){
		if(clause.getRoot().getElement().getClass().equals(OperateurBinaire.class)){
			OperateurBinaire opbin = (OperateurBinaire)clause.getRoot().getElement();
			
			HashSet<ClauseElement> variablesAvant = Biais.get(opbin.getPrecedent(),Variable.class.toString());
			HashSet<ClauseElement> variablesApres = Biais.get(opbin.getSuivant(),Variable.class.toString());
			
			/*for(ClauseElement e : variablesAvant){
				System.out.println(e);
			}
			for(ClauseElement c : variablesApres){
				System.err.println(c);
			}*/
			
			boolean ok = true;
			
			for(ClauseElement e1 : variablesApres){
				
				Variable v1 = (Variable) e1;
				
				boolean dedans = false;
				
				for(ClauseElement e2 : variablesAvant){
					Variable v2 = (Variable) e2;
					
					if(v1.equals(v2)){
						dedans = true;
						break;
					}
				}
				
				if(!dedans){
					
					ok = false;
					break;
				}
				
			}

			return ok;
			
		}
		else
			return false;
	}
}
